// 实例方法
import Vue from 'vue';

// 跳转路由
Vue.prototype.$toView = function(name, options = {}) {
	this.$router.push({ name, ...options });
};

// 在当前层级跳转路由
Vue.prototype.$baseToView = function(name, options = {}) {
	// eslint-disable-next-line
	let basePath = this.$route.name.replace(/^(.+\/)[^\/]+$/, '$1');
	this.$router.push({ name: basePath + name, ...options });
};

// 深入一个层级跳转路由1
Vue.prototype.$deepToView = function(name, options = {}) {
	this.$router.push({ name: this.$route.name + '/' + name, ...options });
};


/** 配置weixin-js-sdk ,前置条件需要后端编写获取微信js-sdk的接口（此项目接口名称为 “wechat_config”）
 * 文档地址  http://caibaojian.com/wxwiki/0030551f015f01ecaa56d20b88ee3c6cb32503bf.html
 * @author DQD
 * @param {string} jsApiList  需要请求设置以','分隔
 * */
 Vue.prototype.$weixinConfig = function (jsApiList = '') {
  return new Promise((resolve, reject) =>{
    // 具体请根据接口返回数据格式进行修改

  let basic_js_api = 'onMenuShareTimeline,onMenuShareAppMessage,onMenuShareQQ,onMenuShareWeibo,onMenuShareQZone,scanQRCode,updateAppMessageShareData,updateTimelineShareData'; //基本的能力分享
  jsApiList ? jsApiList = basic_js_api + `,${jsApiList}` : jsApiList = basic_js_api;
  let params = {
    url: window.location.href, //当前页面的URL，为了校验域名的合法性
    jsApiList: jsApiList, //请求的微信设置
  };

  if (window.__wxjs_is_wkwebview) { // ios设备标识
    if (localStorage.get('ios_request_sdk_static')) { //判断ios设备是否请求过weixin-js-sdk
      resolve(true);
      return;
    }
    localStorage.set('ios_request_sdk_static', true);
  }

  _api.wechat_config(params).then(res => {
    wx.config({
      debug: false,
      appId: res.appId, // 必填，公众号的唯一标识
      nonceStr: res.nonceStr,// 必填，生成签名的时间戳
      timestamp: res.timestamp,// 必填，生成签名的时间戳
      signature: res.signature,// 必填，签名，见附录1
      jsApiList: res.jsApiList, // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
    });
    wx.error(function (err) {
      alert(`微信js-sdk配置错误   ${JSON.stringify(err)}`);
    });
    resolve(true)
  });
  })
};